Skip to content

C2 (macro)elements#212

Merged
pbrubeck merged 26 commits into
mainfrom
pbrubeck/double-alfeld
Jan 21, 2026
Merged

C2 (macro)elements#212
pbrubeck merged 26 commits into
mainfrom
pbrubeck/double-alfeld

Conversation

@pbrubeck

@pbrubeck pbrubeck commented Jan 15, 2026

Copy link
Copy Markdown

Adds the Bramble-Zlanial C2 element (degree >= 9) and the Alfeld C2 macroelement on a double Alfeld split (degree >= 5).

@pbrubeck pbrubeck force-pushed the pbrubeck/deriv-to-riesz branch from f5e3fb8 to 0d524a9 Compare January 15, 2026 21:47
@pbrubeck pbrubeck force-pushed the pbrubeck/double-alfeld branch from aa44c17 to 786eb6c Compare January 16, 2026 12:36
@pbrubeck pbrubeck force-pushed the pbrubeck/double-alfeld branch from 937b65c to b6f1919 Compare January 16, 2026 12:44
@pbrubeck pbrubeck force-pushed the pbrubeck/double-alfeld branch from 730037b to f28b62c Compare January 16, 2026 14:36
Comment thread FIAT/jacobi.py Outdated
@pbrubeck pbrubeck force-pushed the pbrubeck/double-alfeld branch from 9351c3b to 14e0c9b Compare January 16, 2026 17:49

@rckirby rckirby left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit uneasy about not having math yet, but that can be fixed. The main concern about merging is getting a slightly more descriptive name for the element like C2DoubleAlfeld. Other suggestions welcome.

Comment thread FIAT/double_alfeld.py Outdated
Comment thread FIAT/jacobi.py Outdated
Comment thread finat/argyris.py
Comment thread finat/argyris.py
# Inverse mapping
imapping = {v: k for k, v in mapping.items()}

Jnp = numpy.asarray([[J[i, j] for j in range(sd)] for i in range(sd)])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the generality here. However, the math + numpy is a bit unclear. For example, how does this go from the 2x2 jet to 3x3 Hessian map (often called Theta) in the zany papers? Maybe a comment is in order.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess if we write out the maths in a paper this will all become clearer to me?

Comment thread finat/c2_elements.py
@pbrubeck pbrubeck force-pushed the pbrubeck/double-alfeld branch from 7775dcc to f7d1b6a Compare January 17, 2026 17:36
@pbrubeck pbrubeck changed the title Double Alfeld C2 macroelement C2 (macro)elements Jan 17, 2026
Comment thread FIAT/jacobi.py Outdated
Comment thread finat/argyris.py
Comment thread finat/argyris.py
Comment thread finat/argyris.py Outdated

@rckirby rckirby left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'm ok with this once we land on the final version of the names. Once The Paper is written on the transformations, we can link to it and the mysterious code will be at least documented on the arXiv.

Comment thread finat/argyris.py
# Inverse mapping
imapping = {v: k for k, v in mapping.items()}

Jnp = numpy.asarray([[J[i, j] for j in range(sd)] for i in range(sd)])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess if we write out the maths in a paper this will all become clearer to me?

Base automatically changed from pbrubeck/deriv-to-riesz to main January 21, 2026 19:48
@pbrubeck pbrubeck merged commit 02d0f59 into main Jan 21, 2026
8 checks passed
@pbrubeck pbrubeck deleted the pbrubeck/double-alfeld branch January 21, 2026 19:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants